package five;

import java.util.Arrays;
import java.util.Scanner;

interface IntegerStack {
	public Integer push(Integer item);//如果item为null，则不入栈直接返回null。如果栈满，也返回null。如果插入成功，返回item。
	public Integer pop(); //出栈，如果为空，则返回null。出栈时只移动栈顶指针，相应位置不置为null
	public Integer peek(); //获得栈顶元素，如果为空，则返回null.
	public boolean empty(); //如果为空返回true
	public int size(); //返回栈中元素个数
}
 class ArrayIntegerStack implements IntegerStack {
	private Integer[] arr;
	private int top=0;
	public ArrayIntegerStack(int n) {
	 arr = new Integer[n];
	}

	@Override
	public Integer push(Integer item) {
		if(item==null)
			return null;
		if(top==arr.length)
			return null;
		arr[top]=item;
		top++;
		return item;
	}

	@Override
	public Integer pop() {
		if(arr[top--]==null)
			return null;
		return arr[top--];
		
	}

	@Override
	public Integer peek() {
		if(arr[top--]==null)
			return null;
		Integer x=arr[top--];
		arr[top--]=null;
		return x;
		
	}

	@Override
	public boolean empty() {
		if(arr[top]==null)
			return false;
		return true;
	}

	@Override
	public int size() {
		while(arr[top--]!=null)
			return top;
		return 0;
	}

	@Override
	public String toString() {
		return  Arrays.toString(arr) ;
	}

}






public class Main {
	public static void main(String[] arges){
	int n=0;
	Scanner sc=new Scanner(System.in);
	n=sc.nextInt();
	IntegerStack stack=new ArrayIntegerStack(n);
	for(int i=0;i<n;i++){
	System.out.println(stack.push(sc.nextInt()));
	}
	System.out.println(stack.pop()+""+stack.empty()+stack.size());
	System.out.println(stack.toString());
	}
	
}


